#pragma once
#include <string>

namespace krryn{
namespace test{
	class result{
	public:
		enum result_type{
			ok,
			fail,
			warning,
			ignore
		} m_Result;

		std::string m_Group;
		std::string m_Name;
		std::string m_Message;

		size_t m_Nr;

		result(const std::string &a_Group, size_t a_Nr, 
			const std::string &a_TestName, result_type a_Result)
			: m_Group(a_Group), m_Nr(a_Nr), m_Name(a_TestName), m_Result(a_Result), m_Message("") {}

		result(const std::string &a_Group, size_t a_Nr, 
			const std::string &a_TestName, const std::string &a_Message, result_type a_Result)
			: m_Group(a_Group), m_Nr(a_Nr), m_Name(a_TestName), m_Result(a_Result), m_Message(a_Message) {}


		bool skipped() const{
			return m_Result == ignore;
		}

		bool passed() const{
			return m_Result == ok;
		}
	};
}
}